/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.biblioteca.dao.impl;

import com.biblioteca.beans.Usuario;
import com.biblioteca.dao.UsuarioDAO;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import org.springframework.jdbc.core.RowMapper;

/**
 *
 * @author Jesus
 */
public class UsuarioDAOImpl extends JDBCSupport implements UsuarioDAO{

    @Override
    public int Insert(Usuario usuario) throws Exception {
        String sql="INSERT INTO usuario(user,pass) Values(?,?)";
        return this.jdbctemplate.update(sql, new Object[]{usuario.getUser(), usuario.getPass()});
    }

    @Override
    public List<Usuario> getAll() throws Exception {
        String sql = "select * from usuario";
        return jdbctemplate.query(sql, new RowMapper(){
            
            @Override
            public Usuario mapRow(ResultSet rs, int rowNum) throws SQLException {
                Usuario user = new Usuario();
                user.setId(rs.getInt(1));
                user.setUser(rs.getString(2));
                user.setPass(rs.getString(3));
                return user;
            }            
        });
    }

    @Override
    public int actualizar(Usuario usuario) throws Exception {
        String sql="UPDATE  usuario SET user=?, pass=? where id= ? ";
        return this.jdbctemplate.update(sql, new Object[]{usuario.getUser(), usuario.getPass(), usuario.getId()});
    }

    @Override
    public int eliminar(int id) throws Exception {
        String sql="DELETE  usuario where id= ? ";
        return this.jdbctemplate.update(sql, new Object[]{id});
    }

    @Override
    public Usuario getid(int id) throws Exception {
        String sql="select * from usuario where id=?";
        return this.jdbctemplate.queryForObject(sql, new Object[]{id}, new RowMapper<Usuario>() {

            @Override
            public Usuario mapRow(ResultSet rs, int i) throws SQLException {
                Usuario user = new Usuario();
                user.setId(rs.getInt(1));
                user.setUser(rs.getString(2));
                user.setPass(rs.getString(3));
                return user;
            }
        });
    }
    
}
